package com.gwclh.personnel.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;

/**
 * <p>
 * 员工表
 * </p>
 *
 * @author gzhhh
 * @since 2020-07-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_employee")
@ApiModel(value="Employee对象", description="员工表")
public class Employee implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "员工名")
    @NotNull(message = "员工名不能为空")
    private String empName;

    @ApiModelProperty(value = "性别，1男，2女，默认1")
    @NotNull(message = "性别不能为空")
    private Integer sex;

    @ApiModelProperty(value = "出生日期")
    @NotNull(message = "出生日期不能为空")
    private Date birth;

    @ApiModelProperty(value = "身份证")
    @NotNull(message = "身份证不能为空")
    private String idCard;

    @ApiModelProperty(value = "部门id")
    @NotNull(message = "部门不能为空")
    private Integer deptId;

    @ApiModelProperty(value = "岗位id")
    @NotNull(message = "岗位不能为空")
    private Integer staId;

    @ApiModelProperty(value = "入职时间")
    @NotNull(message = "入职时间不能为空")
    private Date empDate;

    @ApiModelProperty(value = "参加工作日期")
    @NotNull(message = "参加工作日期不能为空")
    private Date workDate;

    @ApiModelProperty(value = "用工形式1：正式员工，2：临时员工；默认1")
    @NotNull(message = "用工形式不能为空")
    private Boolean empType;

    @ApiModelProperty(value = "联系电话")
    @NotNull(message = "手机号码不能为空")
    private String empPhone;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "人员来源1：校园招聘2：社会招聘3：其它;默认1")
    private Integer source;

    @ApiModelProperty(value = "政治面貌1党员2：预备党员3：团员4：其他，默认1")
    private Integer politics;

    @ApiModelProperty(value = "民族")
    private String folk;

    @ApiModelProperty(value = "籍贯")
    private String nation;

    @ApiModelProperty(value = "身高，单位cm")
    private Integer height;

    @ApiModelProperty(value = "血型，1：A型,2:B型，3：AB型，4：O型，5：其他，默认1")
    private Integer blood;

    @ApiModelProperty(value = "婚姻状况，1：未婚，2：已婚，3：离婚，4：丧偶,5:其他，默认1")
    private Integer maritalStatus;

    @ApiModelProperty(value = "出身地")
    private String birthPlace;

    @ApiModelProperty(value = "户口所在地")
    private String registeredPlace;

    @ApiModelProperty(value = "最高学历,1高中以下，2大专，3本科，4研究生，默认1")
    private Integer highestEdu;

    @ApiModelProperty(value = "最高学位，1无学位，2学士，3双学士，4硕士，5博士，6博士后；默认1")
    private Integer highestDegree;

    @ApiModelProperty(value = "毕业院校")
    private String graSchool;

    @ApiModelProperty(value = "专业")
    private String speciality;

    @ApiModelProperty(value = "毕业时间")
    private Date graDate;

    @ApiModelProperty(value = "状态，0离职，1在职，默认为1")
    private Integer status;

    @ApiModelProperty(value = "是否是实习生，0不是，1是，默认1")
    private Boolean isInternship;

    @ApiModelProperty(value = "是否在人才库，0不是，1是，默认0")
    private Boolean isTalents;

    @ApiModelProperty(value = "用户头像")
    private String empAvatar;

    @ApiModelProperty(value = "创建日期，自动填充")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新时间，自动填充")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;


}
